type MyAwaited<T extends Promise<unknown>> = T extends Promise<infer V>
  ? V extends Promise<unknown>
    ? MyAwaited<V>
    : V
  : never; // T : 限制Promise类型的输入,所有永远不会进入这个判断分支

// type A = MyAwaited<number>;
type B = MyAwaited<Promise<{ field: number }>>;

//  infer
// 1. infer只能在条件类型中使用
// 2. 设置未知数 变量
